package control;

import dao.LoteDAO;
import entidad.Lote;
import java.util.Date;

public class ControlLote {

    private LoteDAO dao;
    
    public ControlLote () {
        dao = new LoteDAO();
    }

    public boolean validarLote (Lote lote) {
        if(!verificarLongitudNumeroLote(lote.getNumeroLote())){
            return false;
        }
        if(!verificarCantidad(lote.getCantidad())){
            return false;
        }
        if(!verificarFechadeVencimiento(lote.getFechadeVencimiento())){
            return false;
        }
        
        return true;
    }

    public boolean verificarLongitudNumeroLote (long numeroLote) {
        return (numeroLote > 0 && numeroLote <=10000000);
    }

    public boolean verificarFechadeVencimiento (Date fechadeVencimiento) {       
        return (fechadeVencimiento.after(new Date(System.currentTimeMillis())));
    }

    public boolean verificarCantidad (int cantidad) {
        return (cantidad >= 0);
    }

    public boolean agregar(Lote lote){
        if(!validarLote(lote)) {
            return false;
        }
        dao.crear(lote);
        return true;
    }
    
    public boolean modificar(Lote lote){
        if(!validarLote(lote)) {
            return false;
        }
        dao.actualizar(lote, lote);
        return true;
    }
    
    public boolean eliminar(Lote lote){
        return dao.eliminar(lote);
    }
}